package cn.tedu.csmall.product.preload;

import cn.tedu.csmall.product.mapper.BrandMapper;
import cn.tedu.csmall.product.pojo.vo.BrandListItemVO;
import cn.tedu.csmall.product.pojo.vo.BrandStandardVO;
import cn.tedu.csmall.product.repo.impl.BrandRedisRepositoryImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 预加载类
 */
@Slf4j
//@Component
public class CachePreload implements ApplicationRunner {

    @Autowired
    BrandMapper brandMapper;
    @Autowired
    BrandRedisRepositoryImpl brandRedisRepository;

    public CachePreload() {
        log.debug("创建开机自动执行的组件对象：CachePreload");
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.debug("准备删除redis缓存中的数据");
        brandRedisRepository.deleteAll();
        log.debug("删除redis缓存中的数据完成");

        log.debug("准备从数据库中读取品牌列表数据");
        List<BrandListItemVO> list = brandMapper.listBrand();
        log.debug("从数据库中读取品牌列表数据完成");

        log.debug("准备向Redis缓存中写入数据");
        brandRedisRepository.saveList(list);
        log.debug("向Redis缓存中写入数据完成");


    }
}
